Programmable logic devices are semiconductor integrated circuits that can be rewritten after the chip manufacturing. A programmable logic device includes a plurality of wiring lines, of which two selected wiring lines are electrically connected or disconnected. Various methods exist to control the connection states.
One of the methods for controlling the connection of wiring lines uses a transistor and a memory element. The memory element can be electrically programmed, and the transistor is turned ON or OFF in accordance with the programmed information. An SRAM is usually used as the memory element.
Another method provides a programmable circuit (reconfigurable circuit) in which resistive change elements are disposed in intersection regions of wiring lines. Each resistive change element is, for example, a two-terminal nonvolatile resistive change element which switches between a low-resistance state and a high-resistance state if a predetermined voltage is applied between the two terminals.
When a voltage is applied between the two terminals of the nonvolatile resistive change element in order to switch it from the high-resistance state to the low-resistance state, a current flows between the two terminals. If the current is excessive, dispersion of the resistance of the resistive change element switched to the low-resistance state may be large. Therefore, a mechanism for preventing an excessive current that is greater than a predetermined value from flowing between the two terminals of the resistive change element, for example a current limiting element, is generally provided.